package com.zmn.brs.services.interfaces.blacklist;

import java.util.List;

import com.zmn.brs.model.entity.blacklist.Blacklist;
import com.zmn.brs.model.entity.blacklist.query.BlacklistQuery;

/**
 * 描述: 黑名单接口类
 *
 * @author wangjie
 * @since 2019-07-30
 **/
public interface BlacklistService {

    /**
     * 描述: 根据黑名单id 查询数据
     *
     * @param blackId
     *            黑名单id
     * @param blackType
     *            黑名单类型
     * @return com.zmn.plat.model.entity.blacklist.Blacklist 黑名单
     **/
    Blacklist findByIdAndType(Integer blackId, Integer blackType);

    /**
     * 描述: 根据黑名单类容，类型，查询黑名单数据
     *
     * @param blackNum
     *            黑名单内容
     * @param blackType
     *            黑名单类型
     * @return com.zmn.plat.model.entity.blacklist.Blacklist
     **/
    Blacklist findByBlackNumAndType(String blackNum, Integer blackType);

    /**
     * 描述: 根据条件查询黑名单数据 分页
     *
     * @param query
     *            查询条件
     * @return java.util.List<com.zmn.plat.model.entity.blacklist.Blacklist>
     **/
    List<Blacklist> listPageByQuery(BlacklistQuery query);

    /**
     * 描述: 根据条件查询黑名单数据 不分页
     *
     * @param query
     *            查询条件
     * @return java.util.List<com.zmn.plat.model.entity.blacklist.Blacklist>
     **/
    List<Blacklist> listByQuery(BlacklistQuery query);

    /**
     * 描述: 根据白名单内容查询数据
     *
     * @param blackNum
     *            白名单内容
     * @return java.util.List<com.zmn.plat.model.entity.whitelist.Whitelist>
     * @author wangjie
     * @since 2019/8/2
     **/
    List<Blacklist> listByBlackNum(List<String> blackNum);

    /**
     * 描述: 新增黑名单
     *
     * @param blacklist
     *            黑名单
     **/
    void insertBlack(Blacklist blacklist);

    /**
     * 描述: 删除黑名单数据
     *
     * @param blackId
     *            黑名单id
     * @param blackType
     *            黑名单类型
     **/
    void deleteBlackByIdAndType(Integer blackId, Integer blackType);
}
